﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Fiuba.Algo3.Titiritero;
namespace BattleCity
{
    public abstract class VistasFactory
    {
        static public List<IDibujable> Get(List<IObjetoVivo> objetos)
        {
            List<IDibujable> dibujable = new List<IDibujable>();
            foreach (IObjetoVivo objeto in objetos)
            {
                switch (objeto.GetType().ToString())
                {
                    case "BattleCity.Base":
                        dibujable.Add(new VistaBase((Base)objeto));
                        break;
                    case "BattleCity.Explosion":
                        dibujable.Add(new VistaExplosion((Explosion)objeto));
                        break;
                    case "BattleCity.Ametralladora)":
                        dibujable.Add(new VistaAmetralladora((Ametralladora)objeto));
                        break;
                    case "BattleCity.Canion":
                        dibujable.Add(new VistaCanion((Canion)objeto));
                        break;
                    case "BattleCity.LanzaCohetes":
                        dibujable.Add(new VistaLanzaCohete((LanzaCohetes)objeto));
                        break;
                    case "BattleCity.BonusVelocidad":
                        dibujable.Add(new VistaBonusVelocidad((BonusVelocidad)objeto));
                        break;
                    case "BattleCity.BonusVida":
                        dibujable.Add(new VistaBonusVida((BonusVida)objeto));
                        break;
                    case "BattleCity.MuroMetal":
                        dibujable.Add(new VistaMuroMetal((MuroMetal)objeto));
                        break;
                    case "BattleCity.MuroCemento":
                        dibujable.Add(new VistaMuroCemento((MuroCemento)objeto));
                        break;
                    case "BattleCity.ProyectilAmetralladora":
                        dibujable.Add(new VistaProyectilAmetralladora((ProyectilAmetralladora)objeto));
                        break;
                    case "BattleCity.ProyectilCanion":
                        dibujable.Add(new VistaProyectilCanion((ProyectilCanion)objeto));
                        break;
                    case "BattleCity.ProyectilLanzaCohetes":
                        dibujable.Add(new VistaProyectilLanzaCohete((ProyectilLanzaCohetes)objeto));
                        break;
                    case "BattleCity.TanqueGrizzlyBattle":
                        dibujable.Add(new VistaGrizzlyBattle((TanqueGrizzlyBattle)objeto));
                        break;
                    case "BattleCity.TanqueIFV":
                        dibujable.Add(new VistaIFV((TanqueIFV)objeto));
                        break;
                    case "BattleCity.TanqueMirage":
                        dibujable.Add(new VistaMirage((TanqueMirage)objeto));
                        break;
                    case "BattleCity.TanqueUser":
                        dibujable.Add(new VistaUser((TanqueUser)objeto));
                        break;
                    case "BattleCity.TeletransportadorDeTanques":
                        dibujable.Add(new Vistateleport((TeletransportadorDeTanques)objeto));
                        break;
                    case "BattleCity.TeletransportadorDeBonus":
                        dibujable.Add(new Vistateleport((TeletransportadorDeBonus)objeto));
                        break;
                }
            }
            return dibujable;
        }
    }
}
